﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using ENT.GP.Core;
using ENT.GP.Core.Core;
using ENT.GP.Core.Lookup;
using ENT.GP.Core.Proyecto;
using entgpguayas.Code;
using Ext.Net;

public partial class Proyectos_ViewProyecto : PaginasUsuario
{

    DataSet proyectos = new DataSet();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            //this.Page.UICulture = "es";
            EstadoProyectoLookup.InvalidateCache();
            TipoLookup.InvalidateCache();
            EjesLookup.InvalidateCache();
            ProgramaLookup.InvalidateCache();
            EstadoProyectoLookup.InvalidateCache();
            StoreEstado.DataSource = EstadoProyectoLookup.GetNameValueList(this.IdEmp);
            StoreEstado.DataBind();
            StoreTipo.DataSource = TipoLookup.GetNameValueList(this.IdEmp);
            StoreTipo.DataBind();
            StoreEje.DataSource = EjesLookup.GetNameValueList(this.IdEmp);
            StoreEje.DataBind();
            StoreProgramas.DataSource = ProgramaLookup.GetNameValueList(this.IdEmp);
            StoreProgramas.DataBind();

            cbxProgramas.FieldLabel = ManejadorRecursos.GetRecurso("LblPrograma");
            cbxEje.FieldLabel = ManejadorRecursos.GetRecurso("LblEje");
        }
    }
    /// <summary>
    /// Invoca metodo para actualizar datos de la grid
    /// </summary>
    private static void CallRefreshGrid()
    {
        X.Js.AddScript("#{StoreProyectos}.load();");
    }
    protected void StoreRefresh(object sender, StoreRefreshDataEventArgs e)
    {
        var vCbxProgramas = e.Parameters["cbxProgramas_bprm"];
        int iCbxProgramas = 0;

        var vCbxEje = e.Parameters["cbxEje_bprm"];
        int iCbxEje = 0;

        var vCbxCategorias = e.Parameters["cbxCategorias_bprm"];
        int iCbxCategorias = 0;

        var vCbxEstado = e.Parameters["cbxEstado_bprm"];
        int iCbxEstado = 0;

        int idEmpresa = 0;
        int.TryParse(Session["CodigoEmp"].ToString(), out idEmpresa);
        int.TryParse(vCbxProgramas, out iCbxProgramas);
        int.TryParse(vCbxEje, out iCbxEje);
        int.TryParse(vCbxCategorias, out iCbxCategorias);
        int.TryParse(vCbxEstado, out iCbxEstado);

        ProyectoCriterio criterio = ProyectoCriterio.NewProyectoCriterio();
        criterio.ProgramaId = iCbxProgramas;
        criterio.EjeId = iCbxEje;

        if (iCbxCategorias == 0)
            criterio.TipoId = 270;
        else
            criterio.TipoId = iCbxCategorias;

        criterio.EstadoId = iCbxEstado;
        criterio.Nombre = e.Parameters["txtNombrePrograma_bprm"];
        criterio.IdEmpresa = idEmpresa;

        StoreProyectos.DataSource = ProyectoLista.GetProyectoLista(criterio);
        StoreProyectos.DataBind();

    }

    protected void EjecutarAccion(object sender, DirectEventArgs e)
    {
        try
        {
            string Id = e.ExtraParams["Id"];
            int idProy = 0;
            Proyecto objProyecto;
            int.TryParse(Id, out idProy);
            string comando = e.ExtraParams["Comando"];
            string nombre = e.ExtraParams["Nombre"];

            switch (comando)
            {
                case "Ubicacion":
                    var urlUbicacion = string.Format("{0}Georeferencial/UbicacionMapa.aspx?IdP={1}", ConfigurationManager.AppSettings.Get("PathServer"), Id);
                    winUbicacion.LoadContent(urlUbicacion, true);
                    winUbicacion.SetTitle("Ubicación geográfica del proyecto: " + nombre); //
                    winUbicacion.Show();
                    break;
                case "Editar":
                    wucProyecto1.Show(idProy);
                    break;
                case "Eliminar":
                    wucProyecto1.Show(idProy, comando);
                    break;
                case "QViabilidad":
                    objProyecto = Proyecto.GetProyecto(idProy);
                    objProyecto.Viabilidad = "NO";
                    objProyecto.Save();
                    CallRefreshGrid();//btnBuscar_Click(sender, e);
                    break;
                case "QDictamen":
                    objProyecto = Proyecto.GetProyecto(idProy);
                    objProyecto.Dictamen = "NO";
                    objProyecto.Save();
                    CallRefreshGrid();//btnBuscar_Click(sender, e);
                    break;
            }
        }
        catch (Exception ex)
        {
            Util.RegistarLog(ex.ToString());
        }

    }

}
